The present invention relates to application software development and has particular relation to development of application software to be operated on multiple processors.
When developing application software, it is important to be able to monitor the state of each register in the processor and each location in the memory. "Monitor," as used herein, includes starting, stopping, setting breakpoints at specific program locations, single stepping, writing to individual registers and memory locations, and reading from individual registers and memory locations. Each such activity is called herein a "monitoring act." With single-processor software this is relatively straightforward. A host computer is attached to the processor and memory and puts them through their paces as they operate the application software under development. At any time, and under whatever unique states of the processor and memory as the programmer may choose to load into the host computer, the host computer can stop the processor, examine the various registers and memory locations, step through the application program a single step at a time, reexamine the various registers and memory locations, write new information into them, and restart the application program to see if it works any better. If it does, the application program can then be changed to write the new information itself.
Monitoring multiple-processor software is more complex. Each processor--and there may be sixteen processors or more--must be monitored by a separate computer. Emulator software for the development of application software is still largely designed with a single processor in mind. Accordingly, each of the sixteen emulators is separately monitored by a separate keyboard and a separate cathode ray tube. This requires multiple programmers, or a single programmer with his or her attention diverted to multiple interfaces. This limitation of the prior art has been aptly described by the phrase, "Sixteen emulators, sixteen hands."